package com.ylbh.modules.business.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ylbh.common.pojo.business.dto.PrefabricatedGoodsDTO;
import com.ylbh.common.pojo.businessgoods.dto.BusinessGoods1DTO;
import com.ylbh.common.pojo.businessgoods.dto.PrefabricatedGoodsDetailsDTO;
import com.ylbh.common.pojo.businessgoods.dto.UpdateBusinessGoodsDTO;
import com.ylbh.common.pojo.businessgoods.vo.BusinessGoodsDetailsVO;
import com.ylbh.common.pojo.businessgoods.vo.PrefabricatedGoodsClassVO;
import com.ylbh.common.pojo.businessgoods.vo.PrefabricatedGoodsDetailsVO;
import com.ylbh.common.utils.PageUtils;
import com.ylbh.modules.business.entity.ShoppingBusinessGoods;

import java.util.List;

/**
 * 联盟店商品表
 *
 * @author czx
 * @date 2019-04-16 17:08:02
 */
public interface ShoppingBusinessGoodsService extends IService<ShoppingBusinessGoods> {

    /**
     * 联盟店商品列表
     * @param businessGoodsListDTO
     * @return
     */
    PageUtils queryBusinessGoodsList(BusinessGoods1DTO businessGoodsListDTO);

    /**
     * 未审核联盟店商品
     * @return
     */
    int queryCount();

    /**
     * 对联盟店商品进行上架操作
     * @param goodsId
     */
    void modifyIsSale(Long goodsId);

    /**
     * 对联盟店商品进行下架操作
     * @param goodsId
     */
    void modifyNoIsSale(Long goodsId);

    /**
     * 根据id查看联盟店的商品及商家信息
     * @param goodsId
     * @return
     */
    BusinessGoodsDetailsVO getGoodsById(Long goodsId);

    /**
     * 对联盟店商品进行通过操作
     * @param goodsId
     */
    void modifyAdopt(Long goodsId);

    /**
     * 对联盟店商品进行不通过操作
     * @param goodsId
     */
    void modifyNoAdopt(Long goodsId, String statusRemarks);

    /**
     * 对联盟店的商品批量审核通过操作
     * @param ids
     */
    void modifyBatchPassByIds(List<String> ids);

    /**
     * 对联盟店的商品批量审核不通过操作
     * @param ids
     */
    void modifyBatchNoPassByIds(List<String> ids);

    /**
     * 对联盟店的商品进行批量审核操作
     * @param ids
     * @param batch
     */
    void modifyBatchIds(List<String> ids, Integer batch);

    /**
     * 对联盟店的商品详情修改
     * @param updateBusinessGoodsDTO
     */
    void modifyGoodsById(UpdateBusinessGoodsDTO updateBusinessGoodsDTO);

    /**
     * 预制商品列表
     * @param prefabricatedGoodsDTO
     * @return
     */
    PageUtils queryPrefabricatedGoods(PrefabricatedGoodsDTO prefabricatedGoodsDTO);

    /**
     * 预制商品详情
     * @param goodsId
     * @return
     */
    PrefabricatedGoodsDetailsVO getPrefabricatedGoodsById(Long goodsId);

    /**
     * 修改预制商品
     * @param prefabricatedGoodsDetailsDTO
     */
    void modifyPrefabricatedGoodsById(PrefabricatedGoodsDetailsDTO prefabricatedGoodsDetailsDTO);

    /**
     * 新增预制商品
     * @param prefabricatedGoodsDetailsDTO
     */
    void addPrefabricatedGoods(PrefabricatedGoodsDetailsDTO prefabricatedGoodsDetailsDTO);

    /**
     * 批量修改预制商品
     * @param batch
     * @param userClass
     * @param ids
     */
    void modifyBatchPrefabricatedGoodsById(String batch, Integer userClass, String[] ids);

    /**
     * 上下架预制商品
     * @param isSale
     * @param goodsId
     */
    void modifyIsSaleByGoodsId(String isSale, Long goodsId);

    /**
     * 商品重新审核
     * @param goodsId
     * @param status
     * @param statusRemarks
     */
    void modifyGoodsAdopt(String goodsId, Integer status, String statusRemarks);

    /**
     * 预制商品分类
     * @return
     */
    List<PrefabricatedGoodsClassVO> getPrefabricatedGoodsClass();
}

